Read only memories ("ROMs") are non-volatile, non-programmable semiconductor storage devices. ROMs are widely used in electronic systems. For instance, data processors use onboard ROMs to store instruction microcode. Data processing systems use ROMs to store a portion of the system's software operating system necessary at start-up. Various devices, when implemented as integrated circuits, use ROMs to store an identification number of the device, a "device version register." The contents of a version register may be used to determine specific operating characteristics of a particular device that is otherwise identical to a number of other devices.
A mask-programmable ROM is a particular type of ROM whose data is programmed once at manufacture and can not be changed during the operation of the device. The logic state of each bit in the ROM is determined by the combination and pattern of conductive layers, insulative layers, and interconnecting vias. Generally, the combination and pattern of conductive layers, insulative layers, and interconnecting vias connect the output port of the bit cell to a first voltage supply if the logic state of the bit corresponds to a first state. Conversely, the combination and pattern of conductive layers, insulative layers, and interconnecting vias connect the output port of the bit cell to a second voltage supply if the logic state of the bit corresponds to a second state.
One important characteristic of mask-programmable ROMs is the ease with which the contents of the ROM may be changed, i.e. how many of the various patterns of conductive layers, insulative layers, and interconnecting vias must be changed to flip a single bit from the first logic state to the second logic state, or vice versa. It is also an important feature if an individual bit may be flipped backed to its initial logic state after an intermediate change.
An integrated circuit version register has additional requirements given its peculiar purpose. Typically, the version register is incremented each time the manufacturer changes the design of any one or more layers of the device. Therefore, it is important to be able to change the value stored in the version register by changing the patterns of any single layer of the integrated circuit. If this criteria is satisfied, then the manufacturer may update the version register even when making the smallest change to the device. If this criteria is not met, then the manufacturer must make additional design changes to the device simply to update the version register.